﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

//=============================================================
// Copyright (C) 2015 福流网络
// 作 者：钟星星
// 日 期： 2016-07-21
// 描 述:  action过滤器去除零
// 版 本：1.00
// 修改历史纪录
// 版 本  修改时间      修改人             修改内容
//=============================================================



namespace FL.Web.BackEnd.Controllers.Filter
{
    public class FlRemoveZeroActionFilter : ActionFilterAttribute, IActionFilter, IResultFilter
    {

        /// <summary>
        /// Action执行前
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //filterContext.HttpContext.Response.Write("Action执行前");
            //base.OnActionExecuting(filterContext);
        }
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            //filterContext.HttpContext.Response.Write("Action执行后");
            //base.OnActionExecuted(filterContext);
        }

        // 摘要: 
        //     在操作结果执行后调用。
        //
        // 参数: 
        //   filterContext:
        //     筛选器上下文。
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
        }

        //
        // 摘要: 
        //     在操作结果执行之前调用。
        //
        // 参数: 
        //   filterContext:
        //     筛选器上下文。
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            #region 过滤 0 替换为 空字符数
            JsonResult result = (JsonResult)filterContext.Result;
            JsonResult resultdata = (JsonResult)result.Data;
            Hashtable data = (Hashtable)resultdata.Data;


            Hashtable newreult = new Hashtable();
            foreach (DictionaryEntry d in data)
            {
                var value = d.Value.ToString().Replace("0", "");
                newreult.Add(d.Key, value);
            }
            result.Data = newreult;
            filterContext.Result = result;

            #endregion
        }




    }
}